package Daemon;

import lombok.extern.slf4j.Slf4j;

@Slf4j(topic = "c.TestDaemon")
public class TestDaemon {
    public static void main(String[] args) throws InterruptedException {
        Thread t1 = new Thread(new Runnable() {
            @Override
            public void run() {
                while (true) {
                    if(Thread.currentThread().isInterrupted()){
                        log.debug("t1线程结束");
                    }
                }

            }
        },"t1");
        //不将t1线程设置为守护线程Daemon时，主线程结束后，java程序不会关闭，因为t1线程会继续执行
        //将t1线程设置为守护线程Daemon后，主线程结束，t1线程结束，java程序关闭
        //只要其他非守护线程结束了，即使守护线程没有执行完，也会强制结束
        //垃圾回收器就是一种守护线程
        t1.setDaemon(true);
        t1.start();
        Thread.sleep(1000);
        log.debug("主线程结束");
    }
}
